var util = require('util');
function Base() {
    this.name = 'base';
    this.base = 1991;
    this.sayHello = function() {
        console.log('Hello ' + this.name);
    };
}
Base.prototype.showName = function() {
    console.log(this.name);
};
function Sub() {
    this.name = 'sub';
}
//让前者继承后者
util.inherits(Sub, Base);
var objBase = new Base();
//base
objBase.showName();
// Hello base
objBase.sayHello();
// Base { name: 'base', base: 1991, sayHello: [Function] }
console.log(objBase);


// 注意：Sub 仅仅继承了Base 在原型中定义的函数，而构造函数内部创造的 base 属 性和 sayHello 函数都没有被 Sub 继承。
//
// 同时，在原型中定义的属性不会被 console.log 作 为对象的属性输出。
//  如果我们去掉 objSub.sayHello(); 这行的注释，将会看到：   有异常报错

var objSub = new Sub();
// sub
objSub.showName();
// objSub.sayHello();
//  打印  Sub { name: 'sub' }
console.log(objSub);